package com.heyun.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.heyun.bean.HeyunEmp;
import com.heyun.bean.Message;
import com.heyun.service.HeyunEmpService;
import com.heyun.service.MessageService;


@Controller
public class MessageController {

	@Autowired
	private HeyunEmpService empService;
	
	@Autowired
	private MessageService messageService;
	/**
	 * 页面加载时查询当前用户的信息
	 * @param empId
	 * @return 返回查询到的当前用户对象
	 */
	@RequestMapping("/emp_message")
	@ResponseBody
	public Message getEmp(HttpServletRequest request){
		//从session中获取当前登陆用户的信息（此时不包含部门，角色，领导信息）
		HeyunEmp emp0 = (HeyunEmp) request.getSession().getAttribute("user");
		//获取当前登陆用户的ID，查询当前用户的全部详细信息（包含部门，角色的详细信息）
		int empId = emp0.getEmpId();
		HeyunEmp emp = empService.getEmp(empId);
		//封装返回前台
		return Message.success().add("emp", emp);
	}
	
	/**
	 * 后台比对原始密码是否一致的方法
	 * @return 返回更新结果：成功or失败
	 */
	@RequestMapping(value="/emp_password",method=RequestMethod.GET)
	@ResponseBody
	public Message validate_password(HttpServletRequest request,String password){
		//得到当前登陆的emp
		HeyunEmp emp0 = (HeyunEmp) request.getSession().getAttribute("user");
		//比对从前台获取的原始密码是否与用户的登陆密码是否一致
		if(password != null && emp0.getPassword().equals(password)){
			//一致返回比对成功信息
			return Message.success();
		}else{
			//不一致返回比对不成功信息
			return Message.fail();
		}
	}
	
	/**
	 * 更新当前用户信息
	 * @return 返回更新结果：成功or失败
	 */
	@RequestMapping(value="/emp_message",method=RequestMethod.PUT)
	@ResponseBody
	public Message updateEmp(HttpServletRequest request,String loginName,String phone,String password){
		//得到当前登陆的emp
		HeyunEmp emp0 = (HeyunEmp) request.getSession().getAttribute("user");
		//设置当前登陆的emp的empLoginName为前台获取的修改的loginName
		if(loginName != null){
			emp0.setEmpLoginName(loginName);
		}
		//设置当前登陆的emp的phone为前台获取的修改的phone
		if(phone != null){
			emp0.setPhone(phone);
		}
		//设置当前登陆的emp的phone为前台获取的修改的phone
		if(password != null){
			emp0.setPassword(password);
		}
		//调用更新方法
		int m = messageService.updateEmpByEmpId(emp0);
		//返回前台
		return Message.success();
	}
	
	
}
